home *** CD-ROM | disk | FTP | other *** search
/ Java for 3D & VRML Worlds / Java for 3d and VRML Worlds.iso / world / jumanji / open.java < prev    next >
Text File  |  1996-10-16  |  2KB  |  85 lines

  1. import vrml.*;
  2. import vrml.node.*;
  3. import vrml.field.*;
  4.  
  5. public class open extends Script {
  6.   SFTime triggerOpen;
  7.   SFVec3f camMove;
  8.   SFFloat sandFraction;
  9.   SFFloat quakeFraction;
  10.   SFFloat lionFraction;
  11.   ConstSFVec3f personPosition;
  12.   MFVec3f lionPath;
  13.  
  14.   float[][] lionPathA = new float[4][3];
  15.  
  16.   boolean first = true;
  17.   int disaster = -1;
  18.   java.util.Random r_g = new java.util.Random();
  19.  
  20.  
  21.   public void initialize() {
  22.     triggerOpen = (SFTime)getEventOut("triggerOpen");
  23.     camMove = (SFVec3f)getEventOut("camMove");
  24.     sandFraction = (SFFloat)getEventOut("sandFraction");
  25.     lionFraction = (SFFloat)getEventOut("lionFraction");
  26.     lionPath = (MFVec3f)getEventOut("lionPath");
  27.     quakeFraction = (SFFloat)getEventOut("quakeFraction");
  28.  
  29.     lionPathA[1][0] = 12.0f;
  30.     lionPathA[1][1] = 1.5f;
  31.     lionPathA[1][2] = -18.0f;
  32.     lionPathA[0][0] = 999f;
  33.     lionPathA[0][1] = 999f;
  34.     lionPathA[0][2] = 999f;
  35.     lionPathA[3][0] = 999f;
  36.     lionPathA[3][1] = 999f;
  37.     lionPathA[3][2] = 999f;
  38.  
  39.   }
  40.  
  41.   public void processEvent(Event e) {
  42.     if (e.getName().equals("tick")) {
  43.       if (first == true) {
  44.         triggerOpen.setValue((ConstSFTime)e.getValue());
  45.         first = false;
  46.       }
  47.  
  48.     }
  49.     if (e.getName().equals("setDisaster")) {
  50.       float roll = r_g.nextFloat();  
  51.       if (roll < 0.333) {
  52.         disaster = 1;
  53.       } else if (roll < 0.666) {
  54.         disaster = 2;
  55.       } else {
  56.         disaster = 3;
  57.       }
  58.     }
  59.     if (e.getName().equals("disasterFraction")) {
  60.       if (disaster == 1) 
  61.         sandFraction.setValue((ConstSFFloat)e.getValue());
  62.       if (disaster == 2) {
  63.         lionFraction.setValue((ConstSFFloat)e.getValue());
  64.       }
  65.       if (disaster == 3) {
  66.         quakeFraction.setValue((ConstSFFloat)e.getValue());
  67.       }
  68.     }
  69.     if (e.getName().equals("sandInput")) {
  70.       camMove.setValue((ConstSFVec3f)e.getValue());
  71.     }
  72.     if (e.getName().equals("quakeInput")) {
  73.       camMove.setValue((ConstSFVec3f)e.getValue());
  74.     }
  75.     if (e.getName().equals("personMoved")) {
  76.       personPosition = (ConstSFVec3f)e.getValue();
  77.       lionPathA[2][0] = personPosition.getX();
  78.       lionPathA[2][1] = 1.5f;
  79.       lionPathA[2][2] = personPosition.getZ();
  80.       lionPath.setValue(lionPathA);
  81.     }
  82.   }
  83.  
  84. }
  85.